def simple_middleware(get_response):
    # get_response  是处理request的函数,  中间件修改request,  并不处理request=>response
    # 此处编写的代码仅在Django第一次配置和初始化的时候执行一次。
    print('1.初始化中间件')

    def middleware(request):
        # 1. 记录每个url的浏览量,
        # 2. 限流
        # 3. 认证
        # 4. rbac 权限, url, user, 根据用户判断一下, 有没有访问这个url的权限
        # 5. ip黑名单, 反爬虫, request, user-agent
        # 此处编写的代码会在每个请求处理视图前被调用。
        print('1.中间件转交request前, 在这里可以修改request')
        token = request.COOKIES.get('token')
        data = token.split('|')
        username = data[0]
        pwd = data[1]
        request.username = username
        request.pwd = pwd
        # if ip in 黑名单:
        #     return HttpResponse('ip在黑名单中,无权访问')
        response = get_response(request)

        # 此处编写的代码会在每个请求处理视图之后被调用。
        print('1.中间件获取response之后, 在这里可以修改 response')

        return response

    return middleware


def simple_middleware2(get_response):
    # get_response  是处理request的函数,  中间件修改request,  并不处理request=>response
    # 此处编写的代码仅在Django第一次配置和初始化的时候执行一次。
    print('2.初始化中间件')

    def middleware(request):
        # 此处编写的代码会在每个请求处理视图前被调用。
        print('2.中间件转交request前, 在这里可以修改request')

        response = get_response(request)

        # 此处编写的代码会在每个请求处理视图之后被调用。
        print('2.中间件获取response之后, 在这里可以修改 response')

        return response

    return middleware
